package com.newtouch.bxzs.business.product.service;

import com.newtouch.bxzs.business.product.model.MakeRecommendationBO;
import com.newtouch.bxzs.business.product.model.MakeRecommendationVO;
import com.newtouch.bxzs.business.product.model.PremiumTrialBO;
import com.newtouch.bxzs.business.product.model.PremiumTrialVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;

/**
 * 产品Feign调用类
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021年3月8日</td>
 * <td>Amour</td>
 * <td>Create</td>
 * </tr>
 * </table>
 * 
 * @author Amour
 * 
 * @version 1.0.0
 * @since 1.0.0
 */
@Component
@FeignClient(url = "${simulation.url}", name = "product")
public interface ProductFeignClient {

	/**
	 * 保费试算
	 *
	 * @param premiumTrialVOList
	 *            保费试算传入VO
	 * @return PremiumTrialBO 保费试算传出BO
	 */
	@RequestMapping(value = "/product/getPremiumCalculation", method = RequestMethod.POST)
	List<PremiumTrialBO> getPremiumCalculation(@RequestBody List<PremiumTrialVO> premiumTrialVOList);

	/**
	 * 制作建议书
	 *
	 * @param makeRecommendationVO
	 *            制作建议书VO
	 * @return 制作建议书BO
	 */
	@RequestMapping(value = "/product/getRecommendation", method = RequestMethod.POST)
	MakeRecommendationBO getRecommendation(@RequestBody MakeRecommendationVO makeRecommendationVO);

}
